fix(oauth): handle fields missing in the stored config when building consent url #20933
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Fixes OC issue https://github.com/airbytehq/oncall/issues/1251
When an input used for the oauth flow is missing from the stored configuration, a
java.util.NoSuchElementException: No value present
exception was being thrown.The value not being stored in the database is expected in some scenarios, like is the case for Monday. It has a field located within the oauth credentials block (credentials.subdomain) that would only be set if the connector was previously authenticated with OAuth. Having setting up the connector with an api key, this field is not part of the saved configuration. When the OAuthHandler tries to look up the value for that field, it doesn't find anything and throws the above exception.
How
Update the implementation to only set fields in the returned config that it are present. Fields that are not present in the stored configuration will be left out from the map.